/**
 * Cron表达式常量集合
 * 格式: [秒] [分] [时] [日] [月] [周]
 */
export const CronExpression = {
  // 秒级任务
  EVERY_SECOND: '* * * * * *', // 每秒执行一次
  EVERY_5_SECONDS: '*/5 * * * * *', // 每5秒执行一次
  EVERY_10_SECONDS: '*/10 * * * * *', // 每10秒执行一次
  EVERY_30_SECONDS: '*/30 * * * * *', // 每30秒执行一次

  // 分钟级任务
  EVERY_MINUTE: '0 * * * *', // 每分钟的第0秒执行
  EVERY_5_MINUTES: '0 */5 * * *', // 每5分钟执行一次
  EVERY_10_MINUTES: '0 */10 * * *', // 每10分钟执行一次
  EVERY_30_MINUTES: '0 */30 * * *', // 每30分钟执行一次

  // 小时级任务
  EVERY_HOUR: '0 0 * * *', // 每小时的0分0秒执行
  EVERY_2_HOURS: '0 0 */2 * *', // 每2小时执行一次
  EVERY_3_HOURS: '0 0 */3 * *', // 每3小时执行一次
  EVERY_4_HOURS: '0 0 */4 * *', // 每4小时执行一次
  EVERY_5_HOURS: '0 0 */5 * *', // 每5小时执行一次
  EVERY_6_HOURS: '0 0 */6 * *', // 每6小时执行一次
  EVERY_7_HOURS: '0 0 */7 * *', // 每7小时执行一次
  EVERY_8_HOURS: '0 0 */8 * *', // 每8小时执行一次
  EVERY_9_HOURS: '0 0 */9 * *', // 每9小时执行一次
  EVERY_10_HOURS: '0 0 */10 * *', // 每10小时执行一次
  EVERY_11_HOURS: '0 0 */11 * *', // 每11小时执行一次
  EVERY_12_HOURS: '0 0 */12 * *', // 每12小时执行一次

  // 每日固定时间任务
  EVERY_DAY_AT_1AM: '0 0 1 * *', // 每天凌晨1点执行
  EVERY_DAY_AT_2AM: '0 0 2 * *', // 每天凌晨2点执行
  EVERY_DAY_AT_3AM: '0 0 3 * *', // 每天凌晨3点执行
  EVERY_DAY_AT_4AM: '0 0 4 * *', // 每天凌晨4点执行
  EVERY_DAY_AT_5AM: '0 0 5 * *', // 每天凌晨5点执行
  EVERY_DAY_AT_6AM: '0 0 6 * *', // 每天早上6点执行
  EVERY_DAY_AT_7AM: '0 0 7 * *', // 每天早上7点执行
  EVERY_DAY_AT_8AM: '0 0 8 * *', // 每天早上8点执行
  EVERY_DAY_AT_9AM: '0 0 9 * *', // 每天早上9点执行
  EVERY_DAY_AT_10AM: '0 0 10 * *', // 每天早上10点执行
  EVERY_DAY_AT_11AM: '0 0 11 * *', // 每天早上11点执行
  EVERY_DAY_AT_NOON: '0 0 12 * *', // 每天中午12点执行
  EVERY_DAY_AT_1PM: '0 0 13 * *', // 每天下午1点执行
  EVERY_DAY_AT_2PM: '0 0 14 * *', // 每天下午2点执行
  EVERY_DAY_AT_3PM: '0 0 15 * *', // 每天下午3点执行
  EVERY_DAY_AT_4PM: '0 0 16 * *', // 每天下午4点执行
  EVERY_DAY_AT_5PM: '0 0 17 * *', // 每天下午5点执行
  EVERY_DAY_AT_6PM: '0 0 18 * *', // 每天下午6点执行
  EVERY_DAY_AT_7PM: '0 0 19 * *', // 每天晚上7点执行
  EVERY_DAY_AT_8PM: '0 0 20 * *', // 每天晚上8点执行
  EVERY_DAY_AT_9PM: '0 0 21 * *', // 每天晚上9点执行
  EVERY_DAY_AT_10PM: '0 0 22 * *', // 每天晚上10点执行
  EVERY_DAY_AT_11PM: '0 0 23 * *', // 每天晚上11点执行
  EVERY_DAY_AT_MIDNIGHT: '0 0 0 * *', // 每天午夜0点执行

  // 每周任务
  EVERY_WEEK: '0 0 * * 0', // 每周日凌晨0点执行
  EVERY_WEEKDAY: '0 0 * * 1-5', // 周一至周五凌晨0点执行
  EVERY_WEEKEND: '0 0 * * 6,0', // 周六和周日凌晨0点执行

  // 每月任务
  EVERY_1ST_DAY_OF_MONTH_AT_MIDNIGHT: '0 0 1 * *', // 每月1日凌晨0点执行
  EVERY_1ST_DAY_OF_MONTH_AT_NOON: '0 12 1 * *', // 每月1日中午12点执行

  // 其他常用周期
  EVERY_2ND_HOUR: '0 */2 * * *', // 每两小时执行一次（整点）
  EVERY_2ND_HOUR_FROM_1AM_THROUGH_11PM: '0 1-23/2 * * *', // 从凌晨1点开始每两小时执行一次
  EVERY_2ND_MONTH: '0 0 1 */2 *', // 每两个月的1日凌晨0点执行
  EVERY_QUARTER: '0 0 1 */3 *', // 每季度的1日凌晨0点执行
  EVERY_6_MONTHS: '0 0 1 */6 *', // 每半年的1日凌晨0点执行
  EVERY_YEAR: '0 0 1 1 *', // 每年1月1日凌晨0点执行

  // 工作时间任务
  EVERY_30_MINUTES_BETWEEN_9AM_AND_5PM: '0 */30 9-17 * * *', // 上午9点到下午5点每30分钟执行
  EVERY_30_MINUTES_BETWEEN_9AM_AND_6PM: '0 */30 9-18 * * *', // 上午9点到下午6点每30分钟执行
  EVERY_30_MINUTES_BETWEEN_10AM_AND_7PM: '0 */30 10-19 * * *', // 上午10点到晚上7点每30分钟执行

  // 工作日固定时间任务
  MONDAY_TO_FRIDAY_AT_1AM: '0 0 1 * * 1-5', // 周一至周五凌晨1点执行
  MONDAY_TO_FRIDAY_AT_2AM: '0 0 2 * * 1-5', // 周一至周五凌晨2点执行
  MONDAY_TO_FRIDAY_AT_3AM: '0 0 3 * * 1-5', // 周一至周五凌晨3点执行
  MONDAY_TO_FRIDAY_AT_4AM: '0 0 4 * * 1-5', // 周一至周五凌晨4点执行
  MONDAY_TO_FRIDAY_AT_5AM: '0 0 5 * * 1-5', // 周一至周五凌晨5点执行
  MONDAY_TO_FRIDAY_AT_6AM: '0 0 6 * * 1-5', // 周一至周五早上6点执行
  MONDAY_TO_FRIDAY_AT_7AM: '0 0 7 * * 1-5', // 周一至周五早上7点执行
  MONDAY_TO_FRIDAY_AT_8AM: '0 0 8 * * 1-5', // 周一至周五早上8点执行
  MONDAY_TO_FRIDAY_AT_9AM: '0 0 9 * * 1-5', // 周一至周五早上9点执行
  MONDAY_TO_FRIDAY_AT_09_30AM: '0 30 9 * * 1-5', // 周一至周五早上9点30分执行
  MONDAY_TO_FRIDAY_AT_10AM: '0 0 10 * * 1-5', // 周一至周五上午10点执行
  MONDAY_TO_FRIDAY_AT_11AM: '0 0 11 * * 1-5', // 周一至周五上午11点执行
  MONDAY_TO_FRIDAY_AT_11_30AM: '0 30 11 * * 1-5', // 周一至周五上午11点30分执行
  MONDAY_TO_FRIDAY_AT_12PM: '0 0 12 * * 1-5', // 周一至周五中午12点执行
  MONDAY_TO_FRIDAY_AT_1PM: '0 0 13 * * 1-5', // 周一至周五下午1点执行
  MONDAY_TO_FRIDAY_AT_2PM: '0 0 14 * * 1-5', // 周一至周五下午2点执行
  MONDAY_TO_FRIDAY_AT_3PM: '0 0 15 * * 1-5', // 周一至周五下午3点执行
  MONDAY_TO_FRIDAY_AT_4PM: '0 0 16 * * 1-5', // 周一至周五下午4点执行
  MONDAY_TO_FRIDAY_AT_5PM: '0 0 17 * * 1-5', // 周一至周五下午5点执行
  MONDAY_TO_FRIDAY_AT_6PM: '0 0 18 * * 1-5', // 周一至周五下午6点执行
  MONDAY_TO_FRIDAY_AT_7PM: '0 0 19 * * 1-5', // 周一至周五晚上7点执行
  MONDAY_TO_FRIDAY_AT_8PM: '0 0 20 * * 1-5', // 周一至周五晚上8点执行
  MONDAY_TO_FRIDAY_AT_9PM: '0 0 21 * * 1-5', // 周一至周五晚上9点执行
  MONDAY_TO_FRIDAY_AT_10PM: '0 0 22 * * 1-5', // 周一至周五晚上10点执行
  MONDAY_TO_FRIDAY_AT_11PM: '0 0 23 * * 1-5', // 周一至周五晚上11点执行
};
